package com.ruoyi.quartz.task;

import org.springframework.stereotype.Component;

import com.ruoyi.common.utils.spring.SpringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 设备状态定时任务
 * 
 * @author ruoyi
 */
@Component("deviceStatusTask")
public class DeviceStatusTask
{
    //采用Logger输出日志
    private static final Logger logger = LoggerFactory.getLogger(DeviceStatusTask.class);
    /**
     * 获取设备状态
     */
    public void getDeviceStatus(String relayCode)
    {
        try {
            //记录本次任务执行时间
            long startTime = System.currentTimeMillis();
            // 通过SpringUtils获取DeviceScheduledService实例
            Object deviceScheduledService = SpringUtils.getBean("deviceScheduledService");
            if (deviceScheduledService != null) {
                // 使用反射调用test方法
                deviceScheduledService.getClass()
                    .getMethod("pollDeviceStatus", String.class)
                    .invoke(deviceScheduledService, relayCode);
            }
            //记录本次任务执行时间
            long endTime = System.currentTimeMillis();
            logger.debug("Quartz定时任务执行 - 获取设备状态 - 执行时间: " + (endTime - startTime) + "毫秒");
        } catch (Exception e) {
            logger.error("获取设备状态任务执行异常: " + e.getMessage());
        }
    }
}
